﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;

namespace Krist_em_up
{
    public class Credits : GameScreen
    {
        List<string> L;
        SpriteBatch spriteBatch;
        int i;
        SpriteFont font;
        int h,hTete;
        public bool exit;
        protected GameStateManager game;
        Queue<string> F;
        public Credits(GameStateManager game) : base(game)
        {
            this.game = game;
        }
        public override void Initialize()
        {
            F = new Queue<string>();
            exit = false;
            hTete = game.GraphicsDevice.Viewport.Height;
            font = game.Content.Load<SpriteFont>("Fonts/Gamefont");
            L = init();
            h = (int)font.MeasureString("SEX").Y;
            for (i = 0; (i < L.Count && (i + 1) * h < hTete); i++)
            {
                F.Enqueue(L[i]);
            }
        }

        public override void LoadContent()
        {
            spriteBatch = new SpriteBatch(game.GraphicsDevice);
        }
        public override void UnloadContent()
        {
        }

        public override void Update(GameTime gameTime)
        {
            if (F.Count == 0 || game.getClavier().IsKeyDown(Microsoft.Xna.Framework.Input.Keys.Escape))
                exit = true;
        }

        public override void Draw(GameTime gameTime)
        {
            game.GraphicsDevice.Clear(Color.Black);
            Play(gameTime, font);
        }
        public void Play(GameTime gametime, SpriteFont font)
        {
            //TimeSpan time = new TimeSpan(0, 0, 0, 0, 0);
            int dimensionY = game.GraphicsDevice.Viewport.Height;
            int dimensionX = game.GraphicsDevice.Viewport.Width / 2;
            //int prec = 0;
            if (hTete + h < 0)
            {
                F.Dequeue();
                hTete += h;
                if (i < L.Count)
                {
                    F.Enqueue(L[i]);
                    i++;
                }
            }
            int temp = hTete;
            spriteBatch.Begin();
            spriteBatch.GraphicsDevice.Clear(Color.Black);
            foreach (string s in F)
            {
                spriteBatch.DrawString(font, s, new Vector2(dimensionX - font.MeasureString(s).X / 2, temp), Color.White);
                temp += h;
            }
            spriteBatch.End();
            hTete--;
            /*if (prec != time.Seconds)
            {
                prec = time.Seconds;
                hTete -= 1;
            }
            time += gametime.ElapsedGameTime;*/
        }
        public override void Reset()
        {
            throw new NotImplementedException();
        }
        List<string> init()
        {
            List<string> L = new List<string>();
            L.Add("CREDITS:");
            L.Add("");
            L.Add("KRIST'EM'UP");
            L.Add("");
            L.Add("Presente par:");
            L.Add("Les 4 Charpentiers de l'Apocalypse");
            L.Add("");
            L.Add("Histoire");
            L.Add("Les 4 Charpentiers de l'Apocalypse");
            L.Add("");
            L.Add("Moteur physique");
            L.Add("Les 4 Charpentiers de l'Apocalypse");
            L.Add("");
            L.Add("Moteur Graphique");
            L.Add("Les 4 Charpentiers de l'Apocalypse");
            L.Add("");
            L.Add("Sprites");
            L.Add("Google Image");
            L.Add("");
            L.Add("Moteur Sonore");
            L.Add("Les 4 Charpentiers de l'Apocalypse");
            L.Add("");
            L.Add("Sons");
            L.Add("Google");
            L.Add("");
            L.Add("Une idee originale de");
            L.Add("Les 4 Charpentiers de l'Apocalypse");
            L.Add("");
            L.Add("L'equipe");
            L.Add("Bardy Antoine (Orion)");
            L.Add("Chhim Ly William (Willer)");
            L.Add("Martinez Christophe (Bidule)");
            L.Add("Pierme Jean-Lou (Jlou)");
            L.Add("");
            L.Add("Logiciels utilises");
            L.Add("Microsoft Visual Studio");
            L.Add("Spritefont");
            L.Add("Photoshop");
            L.Add("");
            L.Add("Un grand merci a");
            L.Add("Nous");
            L.Add("Vous");
            L.Add("");
            L.Add("Ecrit en C# (XNA)");
            L.Add("Krist'em'up (2011)");
            L.Add("EPITA");
            L.Add("");
            L.Add("FIN");
            return L;
        }
    }
}
